Task focused user interface systems and methods for building automation systems

ABSTRACT

A system for providing a graphical user interface to a user of a building automation system via a client is provided. The building automation system includes a plurality of building devices. The system includes a processor and memory communicably connected to the processor. The memory includes computer code for controlling the plurality of building devices. The memory further includes computer code for providing the graphical user interface to the client. The memory unit further includes computer code for generating a plurality of user interface elements for providing to a single view on the graphical user interface, each of the user interface elements associated with a task relating to a building device.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims the benefit of U.S. Provisional PatentApplication No. 60/897,983 filed Jan. 29, 2007, the entire disclosure ofwhich is incorporated by reference.

BACKGROUND

The present disclosure relates to controlling systems of a building,such as those which provide heating, ventilation, air conditioning, firedetection, and building access and security; and more particularly to auser interface for such building automation systems.

Large commercial and institutional buildings have several systems forcontrolling different aspects of the building operation. A heating,ventilation and air conditioning (HVAC) system manages components whichcontrol the interior environment of the building. A security systemincludes devices which limit access to the building to only individualswho possess a proper access code or access device, such as a key card. Afire detection system utilizes heat and smoke detectors locatedthroughout the building to sense the occurrence of a fire and produce awarning of that event. Other systems may monitor and control lightingand other electrical loads for optimum energy conservation.

Building systems may be autonomous or networked together in anintegrated system. In either case, the systems may be controlled byworkstations at one or more locations within the building or at a remotelocation. Such workstations may be located at the manager's office, thebuilding operating engineer's office, and/or at the security desk. Whenthe building is part of a larger commercial or educational campus, thesystems and networks for each building can be connected to a wide areacommunication network, the Internet, or some other network which enablescontrol from a central campus facility management office or offsitelocation. Offsite communications may be accomplished with standard orproprietary wired or wireless telecommunications links.

Modern building automation systems may include a variety of userinterface features that allow a user (e.g., building engineer, facilityemployee, manager, etc.) to view or control parameters or settings ofvarious facility systems (e.g., HVAC, security, emergency, etc.). Forexample, a building automation system may include a computer applicationor browser interface configured to display the various hardwarecomponents of the HVAC system and the components' operating parameters.As various components or subsystems of building automation systems havebecome more connected and complicated, facilities management userinterfaces and the systems that control the user interfaces have becomecomplicated.

In many instances, a user of a typical building automation system musthave highly detailed knowledge of the hardware design of the system heor she would like to control before being able to investigate a problemor develop a solution. Furthermore, in many instances the user is notpresented with natural language or intuitive control options. Rather,users are typically required to navigate detailed hierarchies ofinformation before they are presented with a screen that allows them tochange a value (e.g., a scheduling parameter, a setpoint parameter,etc.). Even if a user is presented a screen for changing a value earlyin the navigation experience, the method for changing a value istypically cumbersome, especially for novice users that know the outcomethey would like, but not necessarily the parameter names or other systemdesign details.

There is a need for improved graphical user interfaces for buildingautomation systems. Furthermore, there is a need for system configuredto generate a graphical user interface that presents a user withtask-based or outcome focused options for controlling the buildingautomation system and/or devices thereof. Yet further, there is a needfor a system configured to provide an intuitive and easy-to-understandmethod and associated graphical user interfaces for temporarilyoverriding a schedule and/or for changing a value.

What is needed is a system and/or method that satisfies one or more ofthese needs or provides other advantageous features. Other features andadvantages will be made apparent from the present specification. Theteachings disclosed extend to those embodiments that fall within thescope of the claims, regardless of whether they accomplish one or moreof the identified needs.

SUMMARY

One embodiment of the invention relates to a system for providing agraphical user interface to a user of a building automation system via aclient. The building automation system includes a plurality of buildingdevices. The system includes a processor and memory communicablyconnected to the processor. The memory includes computer code forcontrolling the plurality of building devices. The memory furtherincludes computer code for providing the graphical user interface to theclient. The memory unit further includes computer code for generating aplurality of user interface elements for providing to a single view onthe graphical user interface, each of the user interface elementsassociated with a task relating to a building device.

Another embodiment relates to a method for providing a graphical userinterface view to a user of a building automation system. The methodincludes receiving a user interface command to generate a view relatingto a function mode. The method further includes determining a usercontext based on the function mode. The method yet further includesdetermining a set of items associated with the user context andqualifying for inclusion on the graphical user interface view anddetermining whether a task should be provided for each item of the setof items. The method further includes generating the graphical userinterface view, the graphical user interface view comprising arepresentation of each item of the set of items and a representation ofthe task.

Another embodiment relates to a system for providing a graphical userinterface to a user of a building automation system via a client, thebuilding automation system including a building automation sitedirector. The system includes a processor and memory communicablyconnected to the processor. The memory includes computer code forcommunicating with the client and computer code for communicating withthe building automation site director. The memory further includescomputer code for presenting a graphical user interface to the client,the graphical user interface configured to allow the user to select afunction mode and a context via the client. The memory yet furtherincludes computer code for determining a set of tasks to be provided tothe graphical user interface based on the selected function mode andcontext and computer code for providing an update to the graphical userinterface via the client, the update including user interface elementsrepresenting the tasks of the set of tasks.

Alternative exemplary embodiments relate to other features andcombinations of features as may be generally recited in the claims.

BRIEF DESCRIPTION OF THE FIGURES

The application will become more fully understood from the followingdetailed description, taken in conjunction with the accompanyingfigures, wherein like reference numerals refer to like elements, inwhich:

FIG. 1 is a perspective view of a building area having a plurality ofbuilding automation devices, according to an exemplary embodiment;

FIG. 2 is a schematic diagram of a building automation system for thebuilding area of FIG. 1, according to an exemplary embodiment;

FIG. 3A is a block diagram of a user interface (UI) server and externalsite director, according to an exemplary embodiment;

FIG. 3B is a block diagram of a UI server integral with an external sitedirector, according to an exemplary embodiment;

FIG. 4 is a block diagram of a building automation system (BAS) shownwith interaction with a variety of client types, according to anexemplary embodiment;

FIG. 5 is a more detailed block diagram of the hardware components ofthe UI server of FIGS. 3-4, according to an exemplary embodiment;

FIG. 6 is a more detailed block diagram of the software components ofthe UI server of FIGS. 3-4, according to an exemplary embodiment;

FIG. 7 is a view of a UI for a building automation system, displayed ona device such as a personal computer, according to an exemplaryembodiment;

FIG. 8 is a view of a UI for a building automation system displayed on ahandheld device, according to an exemplary embodiment;

FIG. 9A is a view of a user interface system, according to an exemplaryembodiment;

FIG. 9B is a view of a form display generated via the user interfacesystem of FIG. 9A, according to an exemplary embodiment;

FIG. 9C is a view of an updated user interface system of FIG. 9A,according to an exemplary embodiment;

FIG. 10A is a view of a user interface system, according to anotherexemplary embodiment;

FIG. 10B is a view of a form display generated via the user interfacesystem of FIG. 10A, according to an exemplary embodiment;

FIG. 10C is a view of an updated user interface system of FIG. 10A,according to an exemplary embodiment;

FIG. 10D is another view of a user interface system, according to anexemplary embodiment;

FIG. 11A is a flow diagram of a method of generating a display for auser of the user interface, according to an exemplary embodiment;

FIG. 11B is a more detailed flow diagram of a method of generating adisplay for a user of the user interface, according to an exemplaryembodiment;

FIG. 12A is a view of a system of configuring filter definitions,according to an exemplary embodiment;

FIG. 12B is a view of a system of configuring filter definitions,according to another exemplary embodiment;

FIG. 12C is a view of a result screen based on operations performedusing the user interface of FIGS. 12A and 12B, according to an exemplaryembodiment;

FIG. 13A is a flow diagram of a method for creating and maintaining afilter definition for a building automation system, according to anexemplary embodiment;

FIG. 13B is a flow diagram of a method for supporting the filteringshown in FIG. 13A, according to an exemplary embodiment; and

FIG. 13C is a flow diagram of a method of a UI server using a filterdefinition to provide a graphical user interface for a user, accordingto an exemplary embodiment.

DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

Before turning to the figures which illustrate the exemplary embodimentsin detail, it should be understood that the application is not limitedto the details or methodology set forth in the description orillustrated in the figures. It should be understood that the phraseologyand terminology is for the purpose of description only and should not beregarded as limiting.

Referring generally to the FIGS., a graphical user interface (GUI)system and/or server for managing a building automation system is shown.The GUI system is configured to serve graphical user interfaces toclient devices. The GUI system is configured to use data relating to thebuilding automation system to generate the graphical user interfaces.According to an exemplary embodiment, the GUI system provides the userwith access to user interface elements that trigger outcome-based tasksearly in the user experience. According to another exemplary embodiment,the GUI system provides the user with a filter engine for creatingcustomized filters, views, or summaries of information.

Referring now to FIGS. 1 and 2, FIGS. 1 and 2 illustrate an exemplarybuilding automation system that may be used with the systems and methodsdescribed with subsequent FIGS.

FIG. 1 is a perspective view of a building 12 having a plurality ofbuilding devices 13 capable of transmitting and/or receiving controlsignals, according to an exemplary embodiment. As illustrated, building12 may include any number of floors, rooms, spaces, zones, and/or otherbuilding structures and areas. According to various exemplaryembodiments, building 12 may be any area of any size or type, includingan outdoor area. Building devices 13 may exist inside or outside thebuilding, on walls or on desks, be user interactive or not, and may beany type of building device. For example, building devices 13 may be asecurity device, a light switch, a fan actuator, a temperature sensor, athermostat, a smoke detector, an occupancy sensor, other various typesof sensors (flow, pressure, etc.), etc. Building devices 13 may beconfigured to conduct building automation functions (e.g., sensetemperature, sense humidity, control a building management device,etc.). Building devices 13 may also serve any number of networkfunctions (e.g., RF measuring functions, network routing functions,etc.). A controller system 14 may be a wired or wireless device forassisting with control of building devices 13. Controller system 14 mayserve as a site director, network coordinator, building devicecontroller, wireless access point, router, switch, hub, and/or serve asanother node on a network. A workstation 19 is shown as a personalworkstation. Workstation 19 may allow building engineers to interactwith controller system 14. Building devices 13 may be connected tocontroller system 14 and/or workstation 19 via a wired and/or wirelessconnection.

Building automation systems (BAS) are, in general, hardware and/orsoftware systems configured to control, monitor, and manage equipment inor around a building or building area. BAS equipment can include aheating, ventilation, and air conditioning (HVAC) system, a securitysystem, a lighting system, a fire alerting system, an elevator system,another system that is capable of managing building functions, or anycombination thereof. The BAS as illustrated and discussed in the presentdisclosure is an example of a facility system that may be used inconjunction with the systems and methods disclosed, however, otherfacility systems may be used as well. According to other exemplaryembodiments, the systems and methods of the present disclosure may beused in conjunction with any type of system (e.g., a general purposeoffice local area network (LAN), a home LAN, a wide area network (WAN),a wireless hotspot, etc.).

Referring to FIG. 2, a schematic diagram of a BAS 100 that may be usedwith the systems and methods of the present disclosure is shown,according to an exemplary embodiment. BAS 100 may include one or morenetwork automation engines (NAEs) 102 connected to a proprietary orstandard communications network such as an IP network (e.g., Ethernet,WiFi, ZigBee, Bluetooth, etc.). NAEs 102 may support various field-levelcommunications protocols and/or technology, including various InternetProtocols (IP), BACnet over IP, BACnet Master-Slave/Token-Passing(MS/TP), N2 Bus, N2 over Ethernet, Wireless N2, LonWorks, ZigBee, andany number of other standard or proprietary field-level buildingmanagement protocols and/or technologies. NAEs 102 may include varyinglevels of supervisory features and building management features. Theuser interface of NAEs 102 may be accessed via terminals 104 (e.g.,client devices, web browser terminals) capable of communicablyconnecting to and accessing NAEs 102. For example, FIG. 2 shows multipleterminals 104 that may variously connect to NAEs 102 or other devices ofBAS 100. For example, terminals 104 may access BAS 100 and connectedNAEs 102 via a WAN, local IP network, or via a connected wireless accesspoint. Terminals 104 may also access BAS 100 and connected NAEs 102 toprovide information to another source, such as printer 131. Userinterface (UI) server 132 may also be included in BAS 100 coupled to thenetwork.

NAEs 102 may be connected to any number of BAS devices. The devices mayinclude, among other devices, devices such as field-level controlmodules 106, variable air volume modular assemblies (VMAs) 108,integrator units 110, variable air volume (VAV) devices and units 112,extended digital controllers 114, unitary devices 116, air handling unit(AHU) controllers 118, boilers 120, fan coil units 122, heat pump units124, unit ventilators 126, expansion modules, blowers, temperaturesensors, flow transducers, other sensors, motion detectors, actuators,dampers, heaters, air conditioning units, etc. These devices maygenerally be controlled and/or monitored by NAEs 102. Data generated byor available on the various devices that are directly or indirectlyconnected to an NAE 102 may be passed, sent, requested, or read by NAE102 and/or sent to various other systems or terminals of BAS 100. Thedata may be stored by NAE 102, processed by NAE 102, transformed by NAE102, and/or sent to various other systems or terminals of the BAS 100.As shown in FIG. 2, the various devices of BAS 100 may be connected toNAE 102 with a wired connection or with a wireless connection.

Still referring to FIG. 2, an application and data server (ADS) 130 isshown, according to an exemplary embodiment. ADS 130 is a server systemthat includes a database management system (e.g., a relational databasemanagement system, Microsoft SQL Server, SQL Server Express, etc.) andserver software (e.g., web server software, application server software,virtual machine runtime environments, etc.) that provide access to dataand routes commands to the BAS. For example, ADS 130 may serve userinterface applications. ADS 130 may also serve applications such as Javaapplications, messaging applications, trending applications, databaseapplications, etc. ADS 130 may store trend data, audit trail messages,alarm messages, event messages, contact information, and/or any numberof BAS-related data. Terminals may connect to ADS 130 to access theentire BAS 100 and historical data, trend data, alarm data, operatortransactions, and any other data associated with BAS 100, itscomponents, or applications. Various local devices such as printer 131may be attached to components of BAS 100 such as ADS 130.

Various BAS configurations are possible. According to an exemplaryembodiment one computing device of BAS 100 will serve as the sitedirector for the rest of the BAS. The site director may be consideredthe head device or controlling device of a BAS. Depending on the scaleand/or configuration of the BAS, different devices may be the sitedirector. For example, in some large systems ADS 130 will controlmultiple NAEs 102 and their connected building devices (as shown in FIG.2). In smaller or more simple systems, one NAE 102 may be the sitedirector.

UI Server and Architecture

The site director is typically a machine and/or collection ofhardware/software that includes workstation or power-user focused userinterface software. According to the exemplary embodiments shown inFIGS. 3A and 3B a UI server is provided in addition to the BAS sitedirector. The UI server is generally configured to provide intuitivegraphical user interface views for less experienced users andexperienced users alike.

Referring to FIG. 3A, a block diagram of a system 300 of a UI server andexternal site director is shown, according to an exemplary embodiment.UI server 304 may be part of BAS 100 of FIG. 2 (e.g., UI server 132 ofFIG. 2). BAS device 306 may be any type of device, for example, any ofthe devices 102 through 126 of FIG. 2. BAS site director 302 may be ADS130 or NAE 102 of BAS 100 shown in FIG. 2. According to one exemplaryembodiment, UI server 304 and BAS site director 302 may communicate vianetwork 320 and BAS site director 302 and BAS device 306 may communicatevia network 321. Networks 320 and 321 may consist of a wired or wirelessconnection and may be any type of network or any number of networks.Networks 320 and 321 may be the same network, according to an exemplaryembodiment.

UI server 304 is configured for communications with various clientdevices. For example, personal computer (PC) browser 308 and handheldbrowser 310 are shown communicably coupled to UI server 304. Browser 308may be on a PC or other computing device having full screen sizegraphics capabilities (e.g., terminals 104 of FIG. 2), and handheldbrowser 310 may be on a personal digital assistant (PDA), cellularphone, or any other such device. Device browsers 308 and 310 maycommunicate with UI server 304 either via a wired or wirelessconnection. UI server 304 is configured to provide graphical userinterfaces to a user via client devices/software 308, 310. The graphicaluser interfaces provided by UI server 304 relate to monitoring and/orcontrol of BAS devices 306 and/or of BAS site director 302. UI server304 is generally configured to access BAS site director 302 to obtain,retrieve, or access content for use in the generation of its graphicaluser interfaces.

The graphical user interfaces provided to PC browser 308, handheldbrowser 310, or a browser on another client device may be used toperform various tasks by accepting a user input and providing the inputto UI server 304 for the BAS.

UI server 304 may be configured to provide a graphical user interfacethat includes features for viewing summaries of BAS devices, settings,values, schedules, and the like. UI server 304 may further provide agraphical user interface that includes features for changing setpointvalues or other values. The provided graphical user interfaces mayprovide mechanisms configured to allow a user to adjust BAS values andstates, enable operator override commands, release operator overridecommands, view alert summaries, perform basic alert tasks (e.g.,acknowledge, discard, etc.), view schedule summaries, view scheduledetails (e.g., a scheduled point summary, “today's schedule”, atemporary override list, etc.), perform basic schedule tasks (e.g.,temporary override of a scheduled task, etc.), view trend summaries,view trend details such as trend sample data for a limited timeframe,etc. The graphical user interfaces provided to a PC browser and/or ahandheld browser may contain different content in addition to beingsized differently. For example, some features that may be provided tothe PC browser interface may not be provided to the handheld browser,and vise versa. The features provided to the PC browser and/or thehandheld browser may depend upon the nature of the task requested orperformed. Some features may be exclusive for specific groups of users(e.g., administrators may be allowed to access more features than otherusers).

Referring to FIG. 3B, a block diagram of a system 350 of a UI serverintegral with a site director is shown, according to an exemplaryembodiment. System 350 may have the general functionality of system 300of FIG. 3A. In the embodiment shown in FIG. 3B, however, UI server 304is shown as a software residing on or in BAS site director 302 insteadof being a separate hardware and software device. According to theexemplary embodiment shown in FIG. 3B, computer code for BAS sitedirector 302 and computer code for UI server 304 is located in physicalmemory of the same computing device (e.g., an NAE or ADS of the BAS asdescribed in FIG. 2). In the embodiment shown in FIG. 3A, UI server 304is installed on a device (e.g., PC, server class machine, etc.) separatefrom BAS site director 302. According to an alternative exemplaryembodiment, UI server 304 may be installed across multiple BAS machines,standalone machines (e.g., PCs), and/or other platforms.

Referring to FIG. 4, a block diagram of a system 400 is shown, accordingto an exemplary embodiment. UI server 304 may be configured to servegraphical user interfaces to a variety of client and/or user types. Forexample, control room clients 402, specialized clients 404, serviceclients 406, and building operation clients 408 are illustrated asexamples of clients that may be in communication with UI server 304,either via a wired or wireless connection. Clients 402-408 may be orinclude PC devices, kiosk devices, handheld devices, portable devices,mobile phone devices, or any other computing device that may beconfigured to operatively communicate with UI server 304. Tasks andoperations that may be requested and performed by clients 402-408 mayinclude, but are not limited to, navigating and monitoring hierarchiesof BAS devices, adjusting and commanding setpoints or other values,modifying BAS schedules, managing alarms and warnings, andtroubleshooting and diagnosing problems with the BAS.

BAS site director 302 and BAS device 306 may be in communication withworkstation UI/BAS software configuration tool (SCT) 414. WorkstationUI/BAS SCT 414 may be generated by software residing on BAS sitedirector 302 and/or BAS device 306. Workstation UI/BAS SCT 414 mayprovide a graphical user interface that looks and behaves differentlythan the graphical user interface provided by UI server 304. WorkstationUI/BAS SCT 414 may also provide graphical user interfaces foradministration of BAS site director 302 and/or UI server 304. Forexample, workstation UI/BAS SCT 414 may provide graphical userinterfaces for site configuration, user administration, online/advancedreporting, historical data analysis, detailed BAS device command andcontrol, and/or site archive maintenance. Additional features ofworkstation UI/BAS SCT 414 may include maintenance or installation of UIserver 304. A workstation interface 410 and 412 for BAS site director302 and BAS device 306 may be configured to provide relevant informationto workstation UI/BAS SCT 414. Workstation UI/BAS SCT 414 may beinstalled on the same computing device as UI server 304 and BAS sitedirector 302, may be installed on BAS site director 302, or may beinstalled and/or executed on another machine.

Referring further to the block diagrams of FIGS. 1-4, it should beappreciated that any suitable past, present, or future technology forthe communication of information may be utilized for communicatinginformation between servers, clients, software modules, workstations,and the like. Standard and/or proprietary messaging protocols, transferprotocols, network protocols, and the like may be used by the systems.

Referring to FIG. 5, a more detailed block diagram of a system 500 ofthe UI server of FIG. 3A is shown, according to an exemplary embodiment.UI server 502 includes a non-volatile memory 504, a volatile memory 506,a processor 508, and a communication device 510.

Memory of UI server 502 may include both non-volatile memory 504 andvolatile memory 506. Separate devices for non-volatile memory 504 andvolatile memory 506 may exist on UI server 502. Non-volatile memory 504may be configured so that the contents stored therein may be retainedacross a length of time (e.g., a power cycle, etc.), such that data fromprevious system use remains available for UI server 502. According toone exemplary embodiment, non-volatile memory 504 may store one or moreuser profiles, display profiles, communication profiles, or any othertype of user or system setting file. Volatile memory 506 may beconfigured so that the content stored therein may be erased after anevent (e.g., a power cycle) or after a period of time (e.g., a specifiedtime limit, erased-as-needed, etc.).

Processor 508 may be a data processing system or other such systemconfigured to control various functions of UI server 502. Processor 508may include digital or analog processing components and/or be of anypast, present, or future design that facilitates control or providesprocessing features to UI server 502. Processor 508 may be a single dataprocessing device or multiple data processing devices. Processor 508 maybe a data processing device having data processing sub-devices orcomponents. Processor 508 may include any combination of programsoftware and hardware capable of providing control, display,communications, input features, and output features to UI server 502.Processor 508 may coordinate, control, and/or facilitate the variousdevices, components, and features associated with UI server 502 and theother components of the system. According to an exemplary embodiment,processor 508 is communicably coupled to non-volatile memory havingcomputer code for executing the processes of UI server 502 described inthe present application.

Communication device 510 is generally configured to establish acommunication link 512 with an outside source. According to an exemplaryembodiment, communication link 512 is a wired communication linkaccording to a suitable wired protocol and/or technology (e.g., anEthernet link, a USB link, a an IEEE 1394 link, an optical link, otherserial or parallel port technology, etc.). According to various otherexemplary embodiments, communication device 510 may be configured toform a wireless communication link. Communication link 512 may be formedsuch that communication device 510 may be simultaneously connected tomultiple sources. Communication device 510 may send and receive one ormore of data streams, data strings, data files and/or other types ofdata (e.g., non-file based data). In various exemplary embodiments, thedata files and/or non-file based data may include text, numeric data,audio, video, program data, command data, information data, coordinatedata, image data, streaming media, message data, computer code, or anycombination thereof.

Referring now to FIG. 6, a more detailed view of the block diagram of aBAS system 600 including the software components of the UI server ofFIGS. 3-4 is shown, according to an exemplary embodiment. UI server 304may include a PC web server 602, a handheld device (HH) web server 610,an application server 620, and a data server 630.

PC web server 602 may include static web page components 604, dynamicweb page components 606, and page generator 608. PC web server 602 maybe coupled to PC browser 308 either via a wired or wireless connection.PC browser 308 may communicate with PC web server 602 via a HypertextTransfer Protocol (HTTP) or other protocol (e.g., secure HTTP or HTTPS).PC browser 308 may provide a display for a user similar to that of theuser interface of FIG. 7.

HH web server 610 may generally have the same functionality andcomponents as PC web server 602. HH web server 610 may be coupled to HHbrowser 310 either via a wired or wireless connection, and maycommunicate via a HTTP or other protocol. HH browser 310 may provide adisplay for a user similar to that of the user interface of FIG. 8.

Display device 612 maybe any type of device (e.g., a mobile phone) thatmay be configured to provide a user interface. The user interfaceprovided by display device 612 may be embedded or local to the UI server(e.g., an embedded display, local browser, a local client, etc.).Display device 612 may have a local, wired, and/or wireless connectionwith display device web server 614. Display device web server 614 maygenerally have the same functionality and components as PC web server602 and HH web server 610.

Static web page components 604 may include static data files, imagefiles, text files, hypertext files, and the like. Static web pagecomponents 604 may be utilized by page generator 608 and/or dynamic webpage components 606. Dynamic web page components 606 may include activeserver pages, scripts, object code, software modules, files having styledefinitions, and the like.

Page generator 608 may be configured to parse static and/or dynamiccomponents and to generate an HTML page according to a standard markuplanguage or other format.

Application server 620 is shown to include network interface 622,processing logic 624, and other application code and/or other objects626. Application server 620 is configured for logical connection tocomponents of BAS site director 302. Application server 620 mayinterpret commands received from the web server, translate the commandsinto one or more messages configured for the site director, and send themessages to the site director 302.

Network interface 622 may be computer code for formatting, parsing,sending, receiving, and/or otherwise handling communication messagesbetween components of the system (e.g., BAS site director 302, dataserver 630, browsers 308, 310, etc.).

Processing logic 624 may include computer code for executing the variousmethods and processes described in the present application. Applicationcode and/or other objects 626 may include yet other computer code forsupporting the user interface activities described herein.

Data server 630 may include synchronization data 632, dashboarddefinitions 634, and permissions data 636. Data server 630 may becommunicably coupled to application server 620. Synchronization data 632may include data that is synchronized to data and/or informationresiding on BAS site director 302. When used in this manner, informationneed not continually be requested from BAS site director 302 as a useris navigating the graphical user interface.

Dashboard definitions 634 may include settings relating to how graphicaluser interface views should be displayed. Dashboard definitions 634 mayinclude default definitions that define default views for certain userclasses, a definition for each user, a default definition set by anadministrator, or otherwise.

Permissions data 636 may include rules for defining what information,function, and/or views users or user classes are permitted to use or beshown by the graphical user interface.

Referring still to FIG. 6, the UI server may receive inputs from andsend output to one of the browsers via the a web server. When input isreceived from the user, the web browser may provide further input toapplication server 620 of FIG. 6, which processes the input anddetermines a response to the input. A web server of the UI server mayreceive a response from the application server and use the response togenerate one or more GUI elements. Application server 620 may be coupledto BAS site director 302 and data server 630. Application server mayfacilitate interaction between the web servers and the data stored(e.g., site director 302 and/or data server 630). When a user utilizesthe GUI to make a change to a BAS item, the application server may beconfigured to translate input received from the user via the web serverinto one or more messages for the site director and/or the data server.For example, if the user utilizes the GUI to change a setpoint for a BAScontroller or to temporarily override a schedule, the application servermay receive the relevant input, process the input, translate the inputinto one or more messages for the site director and/or data store, andsend the messages. The application may wait to receive a confirmation orother input from the site director before providing a confirmation backto the user via a GUI. It is important to note that any past, present,or future method for communicating queries, commands, and/or othermessages may be utilized between the web server, application server,data server, and/or site director.

User Interface Look and Feel

Referring to FIG. 7, a view of a general layout for a GUI 700 that a BASUI server may be configured to generate is shown, according to anexemplary embodiment. GUI 700 may be a UI for a PC or other device witha relatively full-sized screen. GUI 700 may be configured to accommodatevarious PC browser screen resolutions, according to an exemplaryembodiment.

GUI 700 as shown may be the general layout for a “master” pageconfigured to be the main or first page provided by GUI 700 to a user.The master page may provide a general layout for the various displaysand functions of GUI 700 (e.g., logging out, switching betweenfunctions, etc.). General responsibilities of the main or master page ofGUI 700 may include indicating date and time; indicating the currentuser (e.g., the username of the account currently logged in); providingaccess to online help, an “About” box; providing a mechanism forsetting, switching, and indicating the UI function mode; limitingavailable function modes based on the user type and authorization;providing product and/or company information and branding; providing alayout for the user interface; and providing a mechanism for logging outa user.

Various BAS and UI system information may be provided in a variety ofviews or formats within the UI. The various views may provide actionssuch as paging, sorting, and filtering to allow users to access desiredinformation. The views may also provide users with standard ways toaccess help, refresh displayed information, and return to a previousview, among other actions.

Container 701 is shown as part of the UI for the system. Container 701generally includes selection area 704 and workspace area 706, and may bedependent upon the active function mode of the user interface. Forexample, in some function modes, selection area 704 may be hidden andcontainer 701 may only include workspace area 706.

Selection area 704 is configured to contain a selection componentconfigured to provide the user with a set of “selection mechanisms” thatallow the user to choose the context and/or scope of information to bedisplayed in workspace area 706.

According to an exemplary embodiment, the selection mechanisms may beselection trees. Selection trees may be tree-type hierarchies derivedfrom navigation views provided by the user interface. The user mayselect a tree to display, and select a “node” from within the tree toset the selection context for the workspace view within the variousfunction modes of area 706. According to other exemplary embodiments,other tree hierarchies such as a spaces tree (e.g., a tree that definesthe buildings, floors, and other spaces in a facility) may be used, ornon-tree-based mechanisms may be used (e.g., a list of bookmarkeditems).

According to one exemplary embodiment, a selection tree (or otherselection mechanism) for selection area 704 may be static for a singleBAS (e.g., the selection tree may provide all building areas for a userto select). According to another exemplary embodiment, the selectiontree may not be static for a single BAS. Rather, user permissions orother user and/or situational attributes may be used to determine thecontext of the selection tree. For example, administrators may haveaccess to contexts not available to regular users. By way of furtherexample, the system may automatically inspect user permissions todetermine that a first selection tree should be provided to a first userand a second selection tree should be provided to a second user.

Workspace area 706 may contain workspace components related to an activefunction being managed by the user or displayed for the user. Workspacearea 706 displays information within the user interface and alsoprovides access to related tasks and user actions.

Tasks are operations that a user initiates in order to properly monitor,operate, maintain, and manage a facility. The view displayed for aparticular function by workspace area 706 provides a user with a way toaccomplish a set of tasks related to the viewed function, such asviewing a set of information, changing values, overriding schedules, orresponding to alerts within the facility system and user interfacesystem. Access to the tasks may be provided by the user interface as atextual or graphical link, menu options, or a selection list withinworkspace area 706. A task may be accomplished “directly” (e.g., asingle mouse click or keyboard stroke) or may require user confirmationand/or input (e.g., user entries within a form). Tasks may beconditionally available based upon the authorization level of the user(e.g., administrator) and the type of information provided by workspacearea 706.

Function bar 708 may be designated to display the various functionbuttons of the user interface. Function bar 708 may include buttons forvarious function modes of the facility system. For example, buttons maybe provided for an alerts function mode, a summary function mode, aschedules function mode, a diagnostics function mode, and a toolsfunction mode.

Function buttons on function bar 708 may be displayed conditionally, andmay vary depending upon the type of user detected (e.g., anadministrator may be presented with a different set of buttons than anormal user). Additionally, a button may be pre-selected for aparticular user (e.g., the one of the buttons may be selected uponstartup of the system).

Function modes may be selected using function bar 708. Each functionmode may have a default display assigned, and the active function modemay be changed at any time using function buttons of function bar 708.

According to an exemplary embodiment, a “dashboard” function mode mayprovide a single display and may be a collection of workspace viewsgrouped together for a user as a “home page”. According to one exemplaryembodiment, the dashboard function mode may be configured to be adefault or start-up mode, designated as the active mode upon start-up ofthe user interface system. The definition and content of the mode may beconfigured by an administrator or other authorized user of the userinterface, according to one exemplary embodiment. The dashboard functionmode may provide a layout consisting of one or multiple workspace views.

A dashboard definition may be applied by the user interface to determinethe content of the display in the workspace area of the user interfacewhen the dashboard function is active. The dashboard definition maycomprise information such as view type, view context, sort settings,component-specific information, which dashboard information is to beviewed in for dashboard layouts with multiple areas, etc. The dashboardview provided by the dashboard function mode may be altered based upon auser selection (e.g., if a user selects an option that results in a newworkspace view, the new view is updated in the dashboard function mode).

The alerts function mode may provide workspace views that containinformation and provide access to tasks relating to detecting andmanaging alerts within the facility system. According to one exemplaryembodiment, views such as alert summaries may be provided to inform auser of an alert, and/or displays that correlate alerts with potentialuser actions that may be taken within the system may be provided.

Alert summaries may provide the user of the user interface with alertsthat the user is authorized to be provided (e.g., administrators mayreceive alerts that regular users do not). The summaries may include keyinformation and details of the alert. The summaries may be filteredbased on the current selection tree, alert time, or other property ifdesired, according to an exemplary embodiment. The summaries mayadditionally provide tasks to a user with tasks relating to respondingto the alert. For example, alerts may be viewed, acknowledged, discardedor ignored, etc., and multiple alerts may be managed simultaneously.

The summary function mode may provide workspace views relating togeneral summary information and provide access to tasks relating tomonitoring and managing the operation of the facility system. Summariesmay be provided for a workplace, for particular devices and components(e.g., a device summary), for all devices and components (e.g., a“standard summary”), for control systems, etc. Additionally, a user maybe able to generate specific views relating to specific criteriaprovided by the user.

As an example, a standard summary may be provided to the user relatingto all facility system items (e.g., devices) that are associated withthe current selection made by the user. The summary may include keyinformation relating to each item. The standard summary view may includea method for a user to perform various tasks relating to each item. Forexample, items may be viewed, values of the item may be changed oraltered, and a device summary of the item may be generated and provided.Multiple items may be managed simultaneously.

The device summary that may be displayed via the standard summary mayprovide a list of facility system items that belong to a selected fielddevice. The device summary may otherwise contain the same information asa standard summary, according to an exemplary embodiment.

The scheduling function mode may provide workspace views relating toproviding information and access to tasks related to scheduling featuresof the facility system. Types of views produced by the schedulingfunction may include a schedule summary or schedule details view, a viewthat shows one or more schedules' projected values for a future date, aview that allows a user to modify scheduled events, etc.

A schedule summary view may be provided by the scheduling function mode.The schedule summary may list and provide relevant information for allscheduled items associated with a current selection. The schedulesummary may include a method for performing the tasks of viewing theschedules, temporarily overriding a schedule, and displaying details(e.g., a task) relating to the schedule. Multiple schedules may bemanaged simultaneously.

A schedule details view may also be provided by the scheduling functionmode relating to details for a single schedule item. The detailedinformation may include scheduled items, temporary overrides, projectedvalues, and the schedule's effective period. Tasks relating to theschedule details view may include viewing the details, providing orremoving a temporary override, etc. Multiple schedule details may bemanaged simultaneously.

The diagnostics function mode may provide workspace views relating todiagnostic information and providing access to tasks needed to monitorand evaluate the performance of the facility system. The views may berelated to providing trend summaries and trend details, providing “live”data sampling, providing graphical views of display system performanceindicators (e.g., providing a view that simply illustrates systemperformance of a particular system as good, average, or bad), providing“trend study” information, etc.

A trend summary view may be provided for trends configured for items anddevices associated with the facility system. The trend summary view mayinclude a view of the list of trends and details regarding a singletrend. Trends may be enabled or disabled and multiple trends may bemanaged and/or viewed simultaneously.

A trend details view may also be provided relating to details for asingle trend item and a display of data samples collected by the trend.Trend details may be provided in various types of views (e.g., charts,tables, graphical views, etc.). For example, in a graphical format, thedata sampled may be plotted in a chart of values versus time. The datasamples may be stored in a historical database. Multiple trend detailsmay be viewed and/or managed simultaneously.

The tools function mode may provide workspace views relating toproviding a user with access to information and utility tasks related tothe facility system and user interface system. According to oneexemplary embodiment, the mode may be restricted to authorized personnelonly (e.g., an administrator). A system administration view may beprovided by the mode, allowing the user to start and run an updateprocess for the user interface and/or facility system, among othermanagement tasks.

Referring to FIG. 8, a GUI 800 for display on a handheld device isshown, according to an exemplary embodiment. A handheld display mayinclude a header 802 and a workspace area 808. GUI 800 may be configuredto accommodate various browser screen resolutions of the handhelddevice.

Header 802 is shown to include branding logo 803 and function bar 804.Branding logo 803 may be any identifier, symbol, etc., and may betext-based, graphical based, or any other type of display. Function bar804 may have similar functionality to function bar 708 of FIG. 7.Function bar 804 may contain more or less buttons than function bar 708,based on the window size of the handheld device and other properties.According to one exemplary embodiment, function bar 804 includes buttonsfor function modes such as alerts, summaries, and schedules. Header 802may additionally include other information relating to general usage ofthe user interface and/or handheld device. Workspace area 808 includesscroll bar 809 for navigation, and may be similar to workspace area 706of FIG. 7 in terms of functionality.

Task Focused User Interface

Referring to FIG. 9A, a graphical user interface is shown, according toan exemplary embodiment. The user interface system includes function bar708, workspace area 706, and selection area 704 as described in FIG. 7.

Function bar 708 includes multiple symbols and indicators for variousfunction modes that may be accessed. For example, in FIG. 9A, a button920 for a summary mode is shown as highlighted, indicating that thesummary mode is the current active mode of the user interface system.

Workspace area 706 may be configured differently based upon the functionmode currently selected by a user of the user interface system. Forexample, for a summary mode, three columns may be shown. According tovarious exemplary embodiments, the summary mode may include more or lessinformation, rows, and columns.

Selection area 704 displays a selection tree relating to variousfacility spaces from which information may be viewed. For example, therow 922 for “Library” is highlighted, indicating that the currentselection relates to a “Library” space in the facility. Workspace area706 may display summary information about the “Library” space as aresult. The “Library” space may define the context for the items to bedisplayed in workspace area 706. In other words, the UI server includeslogic for generating a workspace area 706 that only includes itemsrelating to the selected context (e.g., the “Library”).

One column in the workspace area may be labeled “Item” and may relate toproviding the name or other identification of any of the itemsdetermined to be displayed in workspace area 706. For example, item 902is labeled “SF-C” (“supply fan command”), which may be an item name orsymbol relating to a supply fan control of the BAS. Another column maybe labeled “Value” and may relate to a present value associated witheach item. For example, the value may be a numerical value, apercentage, a binary or Boolean value, a string, a temperature, etc.,depending on the item type and/or particular item. Value 904 isillustrated as “off” and may represent that item 902 is currently in theoff state. One column is labeled “Status” and may relate to statusinformation regarding each item. In FIG. 9A, two items are shown ashaving a “High Alarm” status indicating potential problems determined bycomputer logic. For example, computer logic may have determined that thesensed temperatures of items AI-3 and OA-T have varied in a significantway from desired setpoints. The values of the associated items are shownas shaded, providing a user with an additional visual warning. Variouscolors and shading may be used to identify the items and values (e.g.,the color “red” may be used to indicate warnings, the color “orange” mayindicate values that have been overridden, the color “black” mayindicate items that are offline, etc.), or various other identificationtechniques may be used.

According to an exemplary embodiment, the UI server is configured todisplay UI elements for initiating tasks directly with the display ofitems. For example, underlined values (e.g., value 904) may behyperlinks or other active UI elements configured to initiate a taskrelating to the item. Advantageously, using this configuration, a userof the graphical user interface may initiate a task from the sameworkspace area 706 that he or she may be reviewing for other reasons. Itis important to note that not every item and/or value includes anassociated task that may be initiated via a UI element.

Referring to FIG. 9B, a view of a form display 950 that may be generatedwhen the UI element associated with value 904 of FIG. 9A is activated(e.g., clicked, double clicked, etc.) by a user, according to anexemplary embodiment. Using form display 950, a user may be able tochange the value for “SF-C,” for example. The UI element associated withvalue 904 may be configured to initiate a task to change a value whenactivated. Display 950 may be a pop-up form, a new page, a new screen,or some other graphical user interface for displaying the elements shownin FIG. 9A. Advantageously, form display 950 provides plain textinstructions for changing the value, identifies the item, and allows theuser to select the type of change using UI control 908 and to select thenew value using UI control 910.

Referring to FIG. 9C, a view of an updated user interface system of FIG.9A, after the form of FIG. 9B is submitted, is shown, according to anexemplary embodiment. Using form display 950 of FIG. 9B, the value ofitem 902 is shown as changed to “On”. Value 904 is also illustrated asbeing highlighted, indicating a change. In addition, status 906 has alsochanged to “Operator Override” to indicate a change in status based onthe change made using form display 950 of FIG. 9B.

Referring generally to FIGS. 10A-10D, another task sequence isillustrated, according to an exemplary embodiment.

Referring first to FIG. 10A, a view of a graphical user interface systemis shown, according to an exemplary embodiment. In the illustration ofFIG. 10A, the button 1010 for the schedule function mode on function bar708 is highlighted, indicating that workspace area 706 is configured todisplay the schedule function mode of the user interface system. Theselected context (e.g., indicated by the highlighted row 1012 of theselection tree) is “Floor 2” of “GR Elementary” of a “School District”.

Workspace area 706 is shown to include schedule items determined torelate to the context. Each schedule item may relate to a scheduledevent or macro that is stored in the BAS site director. For example, auser may define and store an “Occupancy” schedule. The “Occupancy”schedule may define how BAS setpoints are adjusted according to anexpected occupancy schedule for a building space (e.g., “Floor 2”). Asthe value is listed as “Release,” the graphical user interface indicatesthat the “OCC Schedule” is not currently active or in control of itsscheduled items. Logic in the UI server may determine that the user isauthorized to change the schedule so that it is controlling. In order tochange the schedule so that it is controlling BAS device activity, theuser may select (e.g., click, double click, etc.) a UI elementassociated with value 1002 (e.g., a hyperlink), which is linked to atask to add a temporary override to the system.

Referring to FIG. 10B, when a UI element associated with value 1002 ofFIG. 10A is activated, a form display 1050 may be generated anddisplayed, according to an exemplary embodiment. Form display 1050 mayinclude the ability to change the schedule's controlling value and tospecify a time frame during which the value should be in effect.

Referring now to FIG. 10C, a view of an updated user interface system ofFIG. 10A is shown, according to an exemplary embodiment. The UI elementassociated with value 1002 is used to change value 1002 to an “On” stateas a result of a change made via form display 1050 of FIG. 10B. A usermay select (e.g., click, double click, etc.) item 1004 to access a viewschedule details task.

Referring to FIG. 10D, another view of a user interface system is shown,according to an exemplary embodiment. Workspace area 706 shows aschedule details view that may be selected from the workspace of FIG.10A or FIG. 10C by activating the UI element associated with item 1004.The schedule details view may provide detailed information regarding anindividual schedule for an individual item.

Referring generally to FIGS. 9A-10D, the various values, states, andother data provided in workspace area 706 may be changed in variousways. According to one exemplary embodiment, the data may be static(e.g., the data does not update once displayed unless a user operates auser control of the UI). According to another exemplary embodiment, itemdata may update and refresh without a user input. The UI server maysynchronize with the BAS site director at a regular frequency, and mayprovide the UI with an update. The update may provide changed data forparticular items only, or the update may provide all data for all itemsand the UI may use logic to determine data to update in workspace area706.

According to yet another exemplary embodiment, the BAS site directorand/or UI server may detect changes within the facility regarding datafor an item. Upon detection, the BAS site director and/or UI server may“push” the data to the UI server, and an application on the UI servermay trigger an update process with the UI such that the data provided onworkspace area 706 is updated.

Referring to FIG. 11A, a flow diagram of a method 1100 of generating agraphical user interface is shown, according to an exemplary embodiment.A UI command is received to generate a view for display for a user (step1102). Based upon the command, the context and content of the view maybe determined (step 1104). The context may be a building space, device,and/or a collection of related items that the user may wish to bedisplayed on the user interface. The context may be set based on userselections from a selection tree. The content is information related tothe context that is displayed. The content may include items such asschedules, BAS device controllers, BAS devices, or the like.

Tasks relating to the content are determined (step 1106). A view isgenerated for a user or client of the user interface for display (step1108) such that a user may view, change, or otherwise manage the tasks.The view may include user interface elements for the tasks of thecontent.

Referring to FIG. 11B, a more detailed flow diagram of a method 1150 ofgenerating a display for a user of the user interface is shown,according to an exemplary embodiment. A UI command is received togenerate a view for display for a user (step 1152). The view may berelated to a function (e.g., a top level function) of the facility.

The function selected by the user is determined by the system (step1154). Based upon the selected function, the current task view for thefunction may be determined by the system (step 1156). The current taskview may relate to the view provided in the workspace area of the userinterface system. The user context may be determined (step 1158). Theuser context may relate to a building space, device, and/or a collectionof related items that the user may wish to be displayed on the userinterface. The user context may be comprised of multiple items (e.g.,devices, controllers, sensors, etc.).

Each item of the user context is determined (step 1160). For each itemof the user context, filter criteria is determined (step 1162). Filtercriteria may be user defined or system defined. Filter criteria may beused to determine if an item should be displayed in the user interfaceor what properties or components of the item should be displayed.

Each item associated with the user context may have one or more tasksassociated with the item (step 1164). For each possible task, adetermination is made as to whether the task is applicable or supportedby the facility (step 1166) and as to whether the task is authorized tobe performed for the current user of the user interface (step 1168). Ifthe steps indicate that the task is not applicable, supported, orauthorized for the current user, the task is skipped and the next taskis found. Otherwise, the task may be provided to the user of the userinterface (step 1170) such that the task may be performed if desired bythe user.

Once all tasks are provided or rejected for an item, the next itemassociated with the user context is determined (step 1172). Once alltasks for all items associated with the user context have been analyzed,a view may be generated on the user interface (step 1174). The view mayinclude all applicable items associated with the user context, includingall associated tasks for each applicable item.

Filter Based Activity

According to an exemplary embodiment, workspace area 706 of FIG. 7 mayprovide a list of all items of a building space or other context.According to another exemplary embodiment, systems and methods to allowa user to filter through all the items to display for a given functionand/or context are provided. In other words, a mechanism for allowing auser to define data filters is provided. The data filters result in onlya certain selection of items being shown in workspace area 706. Forexample, a user may be able to filter for a subset of items within abuilding space, and the result of the search may be provided inworkspace area 706, instead of workspace area 706 listing all itemswithin the building space or other context.

According to an exemplary embodiment, filters are created by building afilter definition. A filter definition defines the data to be displayed(in workspace area 706) in the context of a selected building space,user view folder, or other context. A filter definition may bepre-defined by a site administrator or created and/or edited by a user.Pre-stored or created filter definitions may be accessed and/or appliedby the user via any number of methods (e.g., filters may be applied viaa button press, a custom item on the selection tree, a pop-up menu, a“hot key,” or otherwise). According to an exemplary embodiment, filterdefinitions may be accessible via a folder with a fixed location withinthe selection component of the user interface. Some filter definitionsmay apply to any type of function view and/or context. Other filterdefinitions may be configured to only effect a subset of building spacesor user-defined contexts. One or more filter definitions may beassociated with a building space, user view folder, or other context.Furthermore, a single filter definition may be associated with multiplebuilding spaces, user view folders, and/or other contexts.

Filter definitions may be applied to various contexts. For example, afilter definition may be applied to a building space (e.g., a library)and the resulting view in workspace area 706 may relate to the filterdefinition. If a filter definition does not exist for a particularcontext, a default view may be provided. Multiple filter definitions maybe used for a single context. The filter definition may be adjusted forthe type of user interface used (e.g., a UI for a PC may be able todisplay more details than a UI for a handheld device; therefore, thefilter definition may be altered if a handheld device is being used).

Referring now to FIG. 12A, a view of a user interface 1200 forconfiguring filter definitions is shown, according to an exemplaryembodiment. UI 1200 may display (e.g., pop-up) when a user activates aUI element to create a filter definition. According to an exemplaryembodiment, a workstation system (e.g., workstation UI/BAS SCT 414 shownin FIG. 4) may be used to generate user interfaces for configuringfilter definitions. According to yet other exemplary embodiments, userinterfaces for configuring filter definitions may be generated by the UIServer, the workstation UI, or the UI server and the workstation UI.While a variety of user interfaces for building a filter definition maybe provided, a row and column based method is provided according tovarious exemplary embodiments. Such a method may advantageously beintuitive for users given the row and column based output that theapplication of the filter definition may provide.

Users may begin building a filter definition by creating a rowdefinition. Creating a row definition includes selecting to includecertain item requirements (e.g., via control 1202) and/or criteriarequirements (e.g., via control 1204) beyond the basic itemrequirements. For example, as shown in FIG. 12A, the user has selectedto require the items to meet the “field controller” requirement. Theuser has also selected that the items include a name having “VAV” or“FEC” as the first three letters. Further, the user has selected thatthe field controller be associated with a HVAC and that the referencefield for the item contains the string “FEC” or “VAV”.

After a row definition is created, a user may continue building a filterdefinition by then creating a column definition. An exemplary userinterface 1250 is shown in FIG. 12B for creating the column definition.Column definitions may be used for further filtering (e.g., excluding ofitems) or may be used to format and/or select item attributes fordisplay in the results. A user may define a column label (e.g., usingcontrol 1252) followed by criteria (e.g. using control 1254) thatinformation displayed in the column must meet in order to be displayed.

Referring yet further to FIG. 12B, columns may be added by clickingbutton 1256 and removed by clicking button 1258. During creation and/orediting of a filter, definition panel 1260 is updated that displays thepresently selected row and/or column criteria of the filter. Accordingto an exemplary embodiment items on definition panel 1260 may not bedirectly edited but may be selected (e.g., clicked) and then editedusing controls such as 1252 and 1254. According to other exemplaryembodiments, information on the definition panel is directly editable.

Once created and/or edited, the filter definition may be saved viabutton 1262 or via another method. Filter definitions may be saved for auser and stored in memory of the UI server and/or saved to the sitedirector and periodically synchronized with the site director. Oncesaved, filter definitions may be applied to selected contexts. Anexemplary view of a result screen 1280 is shown in FIG. 12C. Workspacearea 706 is shown to include a result area 1284 and an additionalinformation area 1282. Additional information area 1282 may displayinformation falling outside of the filter definition but neverthelessdesired to be viewed on the same screen as the results by the user.According to an exemplary embodiment, one or more user interface screens(e.g., pop-ups) may be provided for a user to create an additionalinformation definition that will be associated with one or more filterdefinitions. In the example shown in FIG. 12C, the user has elected todisplay the name of the site shown relating to the search results and/orselected in the selection tree. It is important to note that the resultsneed not be displayed in a traditional row column format, but may betiled (as shown in FIG. 12C) or displayed in some other manner.

Referring generally to FIGS. 12A and 12B, the method of configuringfilter definitions may use any type of logic to determine qualifyingitems based upon the configured filter definitions. For example, in FIG.12A, the same item (“Name”) is shown as accepting two different stringsas a valid input. The logic for the filter definition may use a logicalOR statement to find all such names that contain either the string “VAV”or “FEC”. Once all like items are logically OR'd together as a group,different items may be joined together using a logical AND statement tofind all valid items that fit the criteria specified by the user. Forexample, items that have either the string “VAV” or “FEC” in the “Name”of the item may be logically AND'd together with all items which “ObjectCategory” equals “HVAC”.

Referring now to FIG. 13A, a method 1300 is shown for establishing afilter definition that may be used by a UI server (or other component)to filter items to be displayed on a building automation systemgraphical user interface provided to a client device and for interactionby a user. Method 1300 includes generating a computer based form (e.g.,a form shown in FIG. 12A and/or 12B, a pop-up window, a new screen, anew page, etc.) for allowing a user to enter filter criteria (step1302). Once the filter criteria is received via the computer form, afilter definition may be created using received filter criteria (step1304). The filter definition may include a table of filter values, aquery string (e.g., a structured query language (SQL) string), objectcode, computer code, a markup language file (e.g., an extensible markuplanguage file), or another data structure suitable for defining a queryor filter. The created filter may then be saved to memory (step 1306).The filter may be saved to a memory associated with the UI server and/ormemory associated with the site director. According to an exemplaryembodiment, the filter is primarily stored and retained in the sitedirector.

Referring now to FIG. 13B, a further method 1350 for generating thegraphical user interface view is shown, according to an exemplaryembodiment. The method may supplement FIG. 13A and/or the steps of 13Bmay be integrated into or between various steps of FIG. 13A. Method 1350includes providing an interface to associate a filter with a selectedbuilding space (step 1352). Method 1350 may further include relating thesaved filter to the selected building space (step 1354) and saving theassociation (e.g., in a text file, relational database, or another datastructure). It is important to note that a plurality of building spacesmay be associated with the saved filter (e.g., step 1356). Associatingmultiple building spaces with a filter may be accomplished by copyingthe filter to and associating the copy with a building space (e.g., byspecifically naming the copied filter, by placing the copy of the filterin a folder or other memory location associated with the second buildingspace, by using a relational database, by using a flat text file, or byusing any other suitable data structure). Additionally, the same filtermay be associated and/or linked to multiple building spaces withoutcopying the filter, allowing a single change to the filter to be appliedto all building spaces associated with the filter. Method 1350 mayfurther include providing an interface for allowing the user to choosebetween automatic application of the filter definition and a standardsummary associated with the building space (step 1358). Step 1358 mayallow the user to set a “new” default screen or view for a functionmode, context, and/or building space. This may advantageously allow theuser to initially view only those items he or she is most interested in,rather than all items associated with a function mode, context, and/orbuilding space. The decision regarding the default filter and/orstandard summary may be stored in a user profile, a configuration filerelating to the user, another configuration file, or another suitabledata structure. According to an exemplary embodiment, the system isfurther configured to copy the filter definition to a first profile (orother configuration file) associated with a first user and a secondprofile associated with a second user (step 1360). The administrator maybe the only user able to conduct such copying or the user may be able tocopy his or her created filter definitions to other users' profiles.This feature may advantageously allow users of a building automationsystem to collaboratively increase the efficiency of the users'experience.

Referring further to FIG. 13B, associating filters with spaces and/orusers may include associating a filter with a folder or node of aselection tree. According to an exemplary embodiment, once associatedwith a folder or node, selecting or activating the filter will includeand filter items in subfolders of the folder. According to otherexemplary embodiments, the subfolders' folders will also be included inthe search and filtered.

Referring now to FIG. 13C, a flow diagram of a method 1370 of a UIserver using a filter definition to provide a GUI for a user is shown,according to an exemplary embodiment. According to another exemplaryembodiment, the GUI itself may use the filter definition to provide aGUI for a user. The saved filter definition (e.g., the filter definitionsaved in step 1306 of FIG. 13A) may be applied (step 1308) to a set ofbuilding automation system data items. The application may occur, forexample, after a user selects a new context that has been associatedwith the filter, after the user selects the filter for application to acontext, after the user selects a new function mode, when a user selectsa filter definition, or by any other number of triggering acts. Onceapplied (manually or dynamically) a graphical user interface or userinterface view/area may be generated and provided to the UI, includingthe results of the applied filter definition (step 1310). The look ofthe results may approximate that shown in the other Figures orotherwise. The application of a filter definition may include querying adata store and/or site director in a certain way. Alternatively, acomplete set of data may be provided from the data store and/or sitedirector and the filter may suppress which results are displayed to theuser.

According to an alternative exemplary embodiment, a method of filteringitems may be provided in workspace area 706 or elsewhere on the UI suchthat a user may filter through items or other objects of the facilitywithout navigating through the screens illustrated in FIGS. 12A and 12B,for example. Such a method may allow for dynamic filtering of itemslisted in workspace area 706. One or more UI controls may be provided onworkspace area 706 and/or on another portion of the UI. A user mayoperate a control, indicating a change in filter preference orotherwise. The list of item in workspace area 706 may dynamicallychange, updating the list of items provided in “real time”. For example,a UI control such as a drop down box may be provided, the drop down boxincluding a list of item types. Upon selection of an item type, thesystem may exclude all items not being of the selected item type fordisplay.

While the exemplary embodiments illustrated in the figures and describedherein are presently preferred, it should be understood that theembodiments are offered by way of example only. Accordingly, the presentapplication is not limited to a particular embodiment, but extends tovarious modifications that nevertheless fall within the scope of theappended claims.

The present application contemplates methods, systems and products onany machine-readable media for accomplishing various operations. Theembodiments of the present application may be implemented using existingcomputer processors, or by a special purpose computer processor for anappropriate system, incorporated for this or another purpose or by ahardwired system.

It is important to note that the construction and arrangement of theinterface components or hardware components as shown in the variousexemplary embodiments is illustrative only. Although only a fewembodiments have been described in detail in this disclosure, thoseskilled in the art who review this disclosure will readily appreciatethat many modifications are possible (e.g., variations in sizes,dimensions, structures, shapes and proportions of the various elements,values of parameters, mounting arrangements, use of materials, colors,orientations, etc.) without materially departing from the novelteachings and advantages. For example, elements shown as integrallyformed may be constructed of multiple parts or elements, the position ofelements may be reversed or otherwise varied, and the nature or numberof discrete elements or positions may be altered or varied. Accordingly,all such modifications are intended to be included within the scope ofthe present application. The order or sequence of any process or methodsteps may be varied or re-sequenced according to alternativeembodiments. In the claims, any means-plus-function clause is intendedto cover the structures described herein as performing the recitedfunction and not only structural equivalents but also equivalentstructures. Other substitutions, modifications, changes, and omissionsmay be made in the design, operating conditions and arrangement of theexemplary embodiments without departing from the scope of the presentapplication.

Embodiments within the scope of the present application include programproducts comprising machine-readable media for carrying or havingmachine executable instructions or data structures stored thereon. Suchmachine-readable media can be any available media that can be accessedby a general purpose or special purpose computer or other machine with aprocessor. By way of example, such machine readable media can compriseRAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magneticdisk storage or other magnetic storage devices, or any other mediumwhich can be used to carry or store desired program code in the form ofmachine-executable instructions or data structures and which can beaccessed by a general purpose or special purpose computer or othermachine with a processor. When information is transferred or providedover a network or another communications connection (either hardwired,wireless, or a combination of hardwired or wireless) to a machine, themachine properly views the connection as a machine-readable medium.Thus, any such connection is properly termed a machine-readable medium.Combinations of the above are also included within the scope ofmachine-readable media. Machine-executable instructions comprise, forexample, instructions and data which cause a general purpose computer,special purpose computer, or special purpose processing machines toperform a certain function or group of functions.

It should be noted that although the figures may show a specific orderof method steps, it is understood that the order of the steps may differfrom what is depicted. Also two or more steps may be performedconcurrently or with partial concurrence. Such variation will depend onthe software and hardware systems chosen and on designer choice. Allsuch variations are within the scope of the application. Likewise,software implementations could be accomplished with standard programmingtechniques with rule based logic and other logic to accomplish thevarious connection steps, processing steps, comparison steps anddecision steps.

1. A system for providing a graphical user interface to a user of abuilding automation system via a client, the building automation systemincluding a plurality of building devices, the system comprising: aprocessor; and a memory unit communicably connected to the processor andincluding: computer code for controlling the plurality of buildingdevices; computer code for providing the graphical user interface to theclient; and computer code for generating a plurality of user interfaceelements for providing to a single view on the graphical user interface,each of the user interface elements associated with a task relating to abuilding device.
 2. The system of claim 1, further comprising: computercode for generating a task interface and for providing the taskinterface to the client, the task interface including at least oneinstruction element and at least one adjustable control.
 3. The systemof claim 2, wherein the task interface includes a second adjustablecontrol.
 4. The system of claim 2, further comprising: computer code forutilizing input provided by the at least one adjustable control to senda control message to the computer code for controlling the plurality ofbuilding devices.
 5. The system of claim 2, further comprising: computercode for displaying the task interface in response to user activation ofone of the plurality of user interface elements.
 6. A method forproviding a graphical user interface view to a user of a buildingautomation system, the method comprising: receiving a user interfacecommand to generate a view relating to a function mode; determining auser context based on the function mode; determining a set of itemsassociated with the user context and qualifying for inclusion on thegraphical user interface view; determining whether a task should beprovided for each item of the set of items; and generating the graphicaluser interface view, the graphical user interface view comprising arepresentation of each item of the set of items and a representation ofthe task.
 7. The method of claim 6, wherein the graphical user interfaceview is configured for viewing via a handheld device.
 8. The method ofclaim 6, wherein the set of items includes at least one item relating toa building device.
 9. The method of claim 6, further comprising:receiving data relating to the set of items from a building sitedirector communicably coupled to a plurality of building devices, thedata relating to the building devices; and storing the data.
 10. Themethod of claim 9, wherein the step of determining whether a task shouldbe provided for each item includes accessing the data.
 11. The method ofclaim 9, wherein the step of generating the graphical user interfaceview includes accessing the data.
 12. The method of claim 6, wherein therepresentation of the task is one of a hyperlink or a button forinitiating the task.
 13. The method of claim 12, wherein initiating thetask includes beginning a software routine to temporarily override asetting relating to a schedule and/or a setpoint relating to a buildingautomation system.
 14. A system for providing a graphical user interfaceto a user of a building automation system via a client, the buildingautomation system including a building automation site director, thesystem comprising: a processor; and memory communicably connected to theprocessor, the memory comprising: computer code for communicating withthe client; computer code for communicating with the building automationsite director; computer code for presenting a graphical user interfaceto the client, the graphical user interface configured to allow the userto select a function mode and a context via the client; computer codefor determining a set of tasks to be provided to the graphical userinterface based on the selected function mode and context; and computercode for providing an update to the graphical user interface via theclient, the update including user interface elements representing thetasks of the set of tasks.
 15. The system of claim 14, furthercomprising computer code for sending a message to the buildingautomation site director in response to user interaction with theinterface elements representing the tasks.
 16. The system of claim 14,further comprising a first web server for responding to requests fromthe client, the first web server configured to serve web pages formattedfor handheld electronic devices.
 17. The system of claim 16, furthercomprising: a second web server configured to serve web pages formattedfor a screen of a personal computer.
 18. The system of claim 14, whereinone of the user interface elements is configured to initiate computercode for allowing the user to temporarily override a scheduled event.19. The system of claim 14, wherein one of the user interface elementsis configured to initiate computer code for allowing the user to changea value.
 20. The system of claim 19, wherein the one of the userinterface elements is a hyperlink.
 21. The system of claim 14, furthercomprising: computer code for dynamically updating a value displayed onthe graphical user interface when the value is changed in the system,the updating completed without requiring user input.